SignalR হলো একটি লাইব্রেরি যা ASP.NET Core-এ রিয়েল-টাইম, দ্বিমুখী যোগাযোগ সক্ষম করতে ব্যবহৃত হয়। এটি সার্ভার এবং ক্লায়েন্টের মধ্যে সরাসরি যোগাযোগের পথ তৈরি করে, যার মাধ্যমে সার্ভার ক্লায়েন্টকে তাত্ক্ষণিকভাবে বার্তা পাঠাতে পারে, এবং ক্লায়েন্টও সার্ভারে রিয়েল-টাইম ডেটা পাঠাতে পারে। SignalR এর মাধ্যমে সহজেই WebSocket, long polling, এবং server-sent events সহ বিভিন্ন প্রযুক্তি ব্যবহার করে রিয়েল-টাইম আপডেট প্রদান করা যায়।
SignalR সাধারণত চ্যাট অ্যাপ্লিকেশন, লাইভ স্পোর্টস স্কোর, সামাজিক মিডিয়া ফিড, কিংবা ফিনান্সিয়াল ট্র্যাকিং অ্যাপ্লিকেশনের মতো রিয়েল-টাইম সিস্টেমে ব্যবহৃত হয়।
SignalR বেশ কিছু ক্ষেত্রে ব্যবহৃত হতে পারে, যেমন:
SignalR একটি Hub ব্যবহার করে কাজ করে, যা ক্লায়েন্ট এবং সার্ভারের মধ্যে যোগাযোগ স্থাপন করে। যখন ক্লায়েন্ট SignalR হাবের সাথে সংযুক্ত হয়, তখন তা সার্ভারের সঙ্গে যোগাযোগ শুরু করতে পারে। Hub ক্লাসে বিভিন্ন মেথড থাকবে যেগুলি ক্লায়েন্টকে ডাটা পাঠাতে বা রিসিভ করতে সাহায্য করে।
ক্লায়েন্টের জন্য JavaScript, .NET বা অন্য প্ল্যাটফর্মের জন্য SDK-এর মাধ্যমে SignalR হাবের সাথে যোগাযোগ করা যায়। সার্ভারটি ক্লায়েন্টদের সুনির্দিষ্ট গ্রুপে বার্তা পাঠাতে পারে অথবা সমস্ত সংযুক্ত ক্লায়েন্টকে বার্তা পাঠাতে পারে।
SignalR ব্যবহার করতে হলে ASP.NET Core প্রজেক্টে নিম্নলিখিত স্টেপগুলো অনুসরণ করতে হবে:
SignalR NuGet প্যাকেজ ইনস্টল করা:
SignalR ব্যবহার করার জন্য প্রথমে আপনার প্রজেক্টে SignalR NuGet প্যাকেজ যোগ করতে হবে:
dotnet add package Microsoft.AspNetCore.SignalR
Hub ক্লাস তৈরি করা:
একটি হাব ক্লাস তৈরি করুন যেখানে ক্লায়েন্টকে বার্তা পাঠানো হবে।
public class ChatHub : Hub
{
public async Task SendMessage(string user, string message)
{
await Clients.All.SendAsync("ReceiveMessage", user, message);
}
}
SignalR সার্ভিস কনফিগার করা:Startup.cs
ফাইলে SignalR সার্ভিস কনফিগার করুন:
public void ConfigureServices(IServiceCollection services)
{
services.AddSignalR();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapHub<ChatHub>("/chathub");
});
}
ক্লায়েন্ট সাইড কোড:
JavaScript বা C# ক্লায়েন্ট ব্যবহার করে SignalR হাবের সাথে সংযোগ স্থাপন করুন:
const connection = new signalR.HubConnectionBuilder()
.withUrl("/chathub")
.build();
connection.on("ReceiveMessage", function(user, message) {
console.log(user + " says " + message);
});
connection.start().then(function() {
connection.invoke("SendMessage", "User1", "Hello, world!");
}).catch(function(err) {
return console.error(err.toString());
});
SignalR ব্যবহার করার সময় নিরাপত্তার বিষয়টিও গুরুত্বপূর্ন। কিছু নিরাপত্তা ব্যবস্থা হিসেবে:
SignalR একটি শক্তিশালী টুল যা রিয়েল-টাইম যোগাযোগ তৈরি এবং পরিচালনা করার জন্য অত্যন্ত কার্যকরী। এটি সহজে .NET Core অ্যাপ্লিকেশনগুলিতে এক্সটেনশন হিসেবে যুক্ত করা যায় এবং অনেক ধরনের রিয়েল-টাইম ফিচার সহ অ্যাপ্লিকেশন তৈরি করতে সহায়তা করে।
common.read_more